diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..e75d723 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,49 @@ +--- +name: Bug Report +about: Found error or incorrect behavior. +labels: bug +--- + +How to reproduce: + +... + + +* `-version`: +* `-build-info`: +* Full command to Manager: +* Project type: +* Environment ( VS, MSBuild, ...): + +Used configuration: + +... + +Optional Project files / Samples: + +... + +log: + +* [{attachment}](https://help.github.com/articles/file-attachments-on-issues-and-pull-requests/) ... + + + +----------- + +*(Remove this section after reading. Click `Preview` tab for convenience)* + +## ! Important + +1. **Try to isolate** problem via very simple code. Any project-sample would be really useful for quick inspection! +2. Log data. To set **detailed** or **diagnostics** level: + * For VS IDE: `Tools` - `Options` - `Project and Solutions` - `Build and Run` - *MSBuild project build verbosity.* + * For msbuild tools: `/v:diag`: + +``` +msbuild /t:Rebuild /m:4 /v:diag > build.log +``` +3. Make sure that you have all rights to publish any of your (or company) data (attached src, log, etc). Responsibility is solely on you. +4. **Do not** put inside message any very long text data ( ~10 Kb+ time for attachments ). Means only as file (text-based, or zip, etc). Because of notifications through email. It's really ... [100K+](https://github.com/3F/DllExport/issues/71) +5. **Try to use** only [GitHub for your attachments and screenshots](https://help.github.com/articles/file-attachments-on-issues-and-pull-requests/) instead of other places. It's free, it's enough. +6. Please try to use [**basic formatting** for your code examples](https://help.github.com/articles/creating-and-highlighting-code-blocks/), to avoid code dancing 🕺 across the page. diff --git a/.github/ISSUE_TEMPLATE/other.md b/.github/ISSUE_TEMPLATE/other.md new file mode 100644 index 0000000..019a4db --- /dev/null +++ b/.github/ISSUE_TEMPLATE/other.md @@ -0,0 +1,16 @@ +--- +name: Other +about: '…' +--- + +. . . + +----------- + +*(Remove this section after reading. Click `Preview` tab for convenience)* + +## ! Important + +1. **Try to use** only [GitHub for your attachments and screenshots](https://help.github.com/articles/file-attachments-on-issues-and-pull-requests/) instead of other places. It's free, it's enough. +2. **Do not** put inside message any very long text data ( ~ 10 Kb+ time for attachments ). Means only as file (text-based, or zip, etc). Because we're receiving this notification through email, so it's really ... [100K+](https://github.com/3F/DllExport/issues/71) +3. Please try to use [**basic formatting** for your code examples](https://help.github.com/articles/creating-and-highlighting-code-blocks/), to avoid code dancing 🕺 across the page. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md new file mode 100644 index 0000000..1ea7869 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/question.md @@ -0,0 +1,24 @@ +--- +name: Question +about: Ask us. +labels: question +--- + +. . . + +----------- + +*(Remove this section after reading. Click `Preview` tab for convenience)* + +## ! Important + +1. **Please** use our [wiki](https://github.com/3F/DllExport/wiki) first. +Available [**Q&A** list](https://github.com/3F/DllExport/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Aquestion). + +2. Please try to use MSDN, stackoverflow, and other relevant places for understanding common practice with P/Invoke, scalar & unmanaged native types, marshaling, .net-domains, multithreading, ... ~something other. Because this is not directly related to our project to teach you programming. We can try to help you anyway, but please have a *conscience.* + +### If you're ready to ask something + +1. **Try to use** only [GitHub for your attachments and screenshots](https://help.github.com/articles/file-attachments-on-issues-and-pull-requests/) instead of other places. It's free, it's enough. +2. **Do not** put inside message any very long text data ( ~ 10 Kb+ time for attachments ). Means only as file (text-based, or zip, etc). Because we're receiving this notification through email, so it's really ... [100K+](https://github.com/3F/DllExport/issues/71) +3. Please try to use [**basic formatting** for your code examples](https://help.github.com/articles/creating-and-highlighting-code-blocks/), to avoid code dancing 🕺 across the page. + diff --git a/.github/issue_template.md b/.github/issue_template.md deleted file mode 100644 index f62810c..0000000 --- a/.github/issue_template.md +++ /dev/null @@ -1,44 +0,0 @@ -### How to reproduce - -... - -#### Version, configuration, commands: - -Versions: - -* `-version`: -* `-build-info`: -* Full command: -* Environment ( VS, MSBuild, ...): - -Configuration: - -... - -#### Project files, samples: - -... - -### log - -... - - - - ------------ - -Please note *(Remove this section after reading. Click `Preview` tab for convenience)* - -1. **Try to use** only [GitHub for your attachments and screenshots](https://help.github.com/articles/file-attachments-on-issues-and-pull-requests/) instead of other places. It's free, it's enough. -2. **Try to isolate** problem via very simple code. Any project-samples would be really useful for quick inspection! -3. **Do not** put inside message any very long text data ( ~ 10 Kb+ time for attachments ). Means only as file (text-based, or zip, etc). Because we're receiving this notification through email, so it's really ... [100K+](https://github.com/3F/DllExport/issues/71) -4. Please try to use [basic formatting for your code examples](https://help.github.com/articles/creating-and-highlighting-code-blocks/), to avoid code dancing 🕺 across the page. -5. You can attach any data to help understand your problem, However, **do not forget about copyrights, license etc.** of your (or company) program, because this code will be available for 3rd party side, thus please check that you have required rights ! -6. Log data. To set **detailed** or **diagnostics** level: - * For VS IDE: `Tools` - `Options` - `Project and Solutions` - `Build and Run` - MSBuild project build verbosity - * For msbuild.exe: `/v:diag`: - -``` -msbuild /t:Rebuild /m:4 /v:diag > build.log -``` diff --git a/.vssbe b/.vssbe index 9710e51..5e3c694 100644 --- a/.vssbe +++ b/.vssbe @@ -23,7 +23,7 @@ "Enabled": true }, { - "ClassName": "OWPComponent", + "ClassName": "OwpComponent", "Enabled": true }, { @@ -39,7 +39,7 @@ "Enabled": true }, { - "ClassName": "DTEComponent", + "ClassName": "DteComponent", "Enabled": true }, { @@ -59,7 +59,7 @@ "Enabled": true }, { - "ClassName": "MSBuildComponent", + "ClassName": "EvMSBuildComponent", "Enabled": true }, { @@ -147,24 +147,36 @@ "Mode": { "$type": "net.r_eg.vsSBE.Events.ModeScript, vsSolutionBuildEvent", "Type": "Script", - "Command": "#[$(moduleGetNuTool = \"GetNuTool/gnt.sln\")]\n\n#[( #[IO exists.file(\"$(moduleGetNuTool)\")] )\n{ \n ##[File scall(\"submodules.bat\", \"$(moduleGetNuTool)\", 400)]\n #[File call(\"submodules.bat\", \"$(moduleGetNuTool)\", 2000)]\n}\nelse{\n #[File call(\"submodules.bat\", \"$(moduleGetNuTool)\", 2000)]\n}]\n\n#[\" Packages \"]\n\n#[( !(#[IO exists.directory(\"packages\")]) || !(#[IO exists.directory(\"$(pMvsSln)/packages\")]) )\n{\n #[File call(\"packages_restore.cmd\", \"\", 2000)]\n}]", + "Command": "#[( !(#[IO exists.file(\"$(pGetNuTool)/gnt.sln\")]) )\n{\n #[File call(\"git\", \"submodule update --init --recursive GetNuTool\", 1000)]\n}]\n\n#[( !(#[IO exists.file(\"$(pMvsSln)/MvsSln.sln\")]) )\n{\n #[File call(\"git\", \"submodule update --init --recursive MvsSln\", 1000)]\n}]\n\n#[( !(#[IO exists.file(\"$(phMSBuild)/hMSBuild.sln\")]) )\n{\n #[File call(\"git\", \"submodule update --init --recursive hMSBuild\", 1000)]\n}]\n\nTODO: option for expensive coreclr\n\n\n#[\" Packages \"]\n\n#[( !(#[IO exists.file(\"packages/__checked\")]) )\n{\n #[File call(\"tools\\hmsbuild.bat\", \"-t:restore /v:q /nologo /p:Configuration=$(Configuration) /p:Platform=\\\"Any CPU\\\"\", 1000)]\n \n #[NuGet gnt.raw(\"/p:ngconfig=\\\"packages.config;PeViewer/packages.config;NSBin/packages.config\\\" /nologo /v:m /m:4\")]\n \n #[IO copy.directory(\"\", \"packages/\", true)]\n #[File write(\"packages/__checked\"): ]\n}]", "Command__": [ - "#[$(moduleGetNuTool = \"GetNuTool/gnt.sln\")]", + "#[( !(#[IO exists.file(\"$(pGetNuTool)/gnt.sln\")]) )", + "{", + " #[File call(\"git\", \"submodule update --init --recursive GetNuTool\", 1000)]", + "}]", "", - "#[( #[IO exists.file(\"$(moduleGetNuTool)\")] )", - "{ ", - " ##[File scall(\"submodules.bat\", \"$(moduleGetNuTool)\", 400)]", - " #[File call(\"submodules.bat\", \"$(moduleGetNuTool)\", 2000)]", - "}", - "else{", - " #[File call(\"submodules.bat\", \"$(moduleGetNuTool)\", 2000)]", + "#[( !(#[IO exists.file(\"$(pMvsSln)/MvsSln.sln\")]) )", + "{", + " #[File call(\"git\", \"submodule update --init --recursive MvsSln\", 1000)]", + "}]", + "", + "#[( !(#[IO exists.file(\"$(phMSBuild)/hMSBuild.sln\")]) )", + "{", + " #[File call(\"git\", \"submodule update --init --recursive hMSBuild\", 1000)]", "}]", "", + "TODO: option for expensive coreclr", + "", + "", "#[\" Packages \"]", "", - "#[( !(#[IO exists.directory(\"packages\")]) || !(#[IO exists.directory(\"$(pMvsSln)/packages\")]) )", + "#[( !(#[IO exists.file(\"packages/__checked\")]) )", "{", - " #[File call(\"packages_restore.cmd\", \"\", 2000)]", + " #[File call(\"tools\\hmsbuild.bat\", \"-t:restore /v:q /nologo /p:Configuration=$(Configuration) /p:Platform=\\\"Any CPU\\\"\", 1000)]", + " ", + " #[NuGet gnt.raw(\"/p:ngconfig=\\\"packages.config;PeViewer/packages.config;NSBin/packages.config\\\" /nologo /v:m /m:4\")]", + " ", + " #[IO copy.directory(\"\", \"packages/\", true)]", + " #[File write(\"packages/__checked\"): ]", "}]" ] } diff --git a/3rd-party.txt b/3rd-party.txt index 0c97941..59a6388 100644 --- a/3rd-party.txt +++ b/3rd-party.txt @@ -28,9 +28,16 @@ DllExport [ github.com/3F/DllExport ] * https://github.com/3F/GetNuTool * https://github.com/3F/hMSBuild - ## Maintaining of this project also includes the following tools: - - * vsSolutionBuildEvent /+ CI.MSBuild [ github.com/3F/vsSolutionBuildEvent ] - * GetNuTool [ github.com/3F/GetNuTool ] - * hMSBuild [ github.com/3F/hMSBuild ] - + ## Dev Dependencies includes the following tools for src: + + * vsSolutionBuildEvent + https://github.com/3F/vsSolutionBuildEvent + + * MSTest Framework + https://github.com/microsoft/testfx + + * hMSBuild + https://github.com/3F/hMSBuild + + * GetNuTool + https://github.com/3F/GetNuTool diff --git a/MvsSln b/MvsSln index a3694d5..55ae1e6 160000 --- a/MvsSln +++ b/MvsSln @@ -1 +1 @@ -Subproject commit a3694d5e590d209623c0d37edc1b7ddaf2a23185 +Subproject commit 55ae1e6486f14213d42d7c35880b1c0457d407af diff --git a/build.bat b/build.bat index 20d36e4..b16260f 100644 --- a/build.bat +++ b/build.bat @@ -1,22 +1,22 @@ @echo off -set reltype=%1 -set cimdll=packages\vsSBE.CI.MSBuild\bin\CI.MSBuild.dll -set _msbuild=tools\hMSBuild +set cim=packages\vsSolutionBuildEvent\cim.cmd +set _gnt=tools/gnt +set reltype=%1 if "%reltype%"=="" ( set reltype=Release ) -:found - -call packages_restore.cmd || goto err +call %_gnt% /p:wpath="%cd%" /p:ngconfig="packages.config" /nologo /v:m /m:4 || goto err +call %cim% "DllExport.sln" /v:m /m:4 /p:Configuration="%reltype%" || goto err -call %_msbuild% -notamd64 "DllExport.sln" /v:m /l:"%cimdll%" /m:4 /t:Build /p:Configuration="%reltype%" || goto err - -exit /B 0 +goto exit :err echo. Build failed. 1>&2 exit /B 1 + +:exit +exit /B 0 \ No newline at end of file diff --git a/packages.config b/packages.config index a0a4ae3..fe43d81 100644 --- a/packages.config +++ b/packages.config @@ -1,5 +1,5 @@  - + \ No newline at end of file diff --git a/packages_restore.cmd b/packages_restore.cmd deleted file mode 100644 index c96e2d7..0000000 --- a/packages_restore.cmd +++ /dev/null @@ -1,38 +0,0 @@ -@echo off - -:: To restore packages via GetNuTool -:: https://github.com/NuGet/Home/issues/1521 - -set _gnt=tools/gnt -set _gntArgs=%* - - -:: set bat=%~nx0 -:: echo Note: To change MSBuild Tools, use: `%bat:~0,-4% -msbuild "full_path_to_msbuild.exe"` - -:found - -echo. -echo. [ Restoring packages. Please wait ... ] -echo. - - -:: - -echo. -echo MvsSln ... -call %_gnt% %_gntArgs% /p:wpath="%cd%/MvsSln" /p:ngconfig="packages.config;MvsSlnTest/packages.config" /nologo /v:m /m:4 || goto err - -:: - -echo. -echo General ... -call %_gnt% %_gntArgs% /p:wpath="%cd%" /p:ngconfig="packages.config;Wizard/packages.config;PeViewer/packages.config;NSBin/packages.config;RGiesecke.DllExport/packages.config;RGiesecke.DllExport.MSBuild/packages.config" /nologo /v:m /m:4 || goto err - -goto exit - -:err - -echo. failed. 1>&2 -exit /B 1 - -:exit -exit /B 0 \ No newline at end of file diff --git a/submodules.bat b/submodules.bat deleted file mode 100644 index bff38ae..0000000 --- a/submodules.bat +++ /dev/null @@ -1,53 +0,0 @@ -@echo off - -echo Checking submodules ... - -set _dep=%1 - -if "%_dep%"=="" ( - echo Incorrect command. Please use `build.bat` instead of this. - exit /B 0 -) - - -if not exist "%_dep%" goto restore -exit /B 0 - -:restore - -echo. -echo. Whoops, you need to update git submodules. -echo. But we'll update this automatically. -echo. -echo. Please wait... -echo. - -:: GetNuTool -git submodule update --init --recursive GetNuTool || goto gitNotFound - -:: MvsSln -git submodule update --init --recursive MvsSln || goto gitNotFound - -:: hMSBuild -git submodule update --init --recursive hMSBuild || goto gitNotFound - -:: TODO option for expensive coreclr - -exit /B 0 - -:gitNotFound - -if not exist ".git" ( - echo. 1>&2 - echo To restore submodules via Git scm you should have a `.git` folder, but we can't find this. 1>&2 - echo Unfortunately you should get this manually, or try to clone initially with recursive option: `git clone --recursive ...` 1>&2 - exit /B 3 -) - -echo. 1>&2 -echo. `git` was not found or something went wrong. Check your connection and env. variable `PATH`. Or get submodules manually: 1>&2 -echo. 1. Use command `git submodule update --init --recursive` 1>&2 -echo. 2. Or clone initially with recursive option: `git clone --recursive ...` 1>&2 -echo. 1>&2 - -exit /B 2 \ No newline at end of file