2012-06-13 80 views
1

對於Microsoft Visual Studio IDE中的Visual C#項目,要使用哪些配置設置,以便它可以生成exe和dll輸出?在MSVC中生成dll和exe文件

+3

有沒有這樣的設置。 –

+0

對不起,我現在的問題不好搜索。我可以看到在下面的鏈接詢問同一個: http://stackoverflow.com/questions/2466492/visual-studio-project-build-as-an-executable-and-a-dll 正如所述Jared,我們該如何做一個exe文件複製到dll的過程? – inquisitive

回答

0

正如Darin在評論中指出的那樣,沒有設置要做到這一點。但是,您可以通過構建事件和批處理腳本實現它

  1. 創建的DLL項目預生成事件調用批處理腳本
  2. 在批處理,複製的csproj爲dll項目
    • 修改複製的csproj的XML內容來改變輸出類型爲exe
    • 修改複製的csproj在視覺輸出目錄
  3. 運行此工作室

您現在將得到您的csproj生成哪個輸出到exe文件的副本。您可以將第二個csproj添加到visual studio中,並且每次構建時,都應該同步exe csproj並構建它。

一些提示:

  • 您可以修改的csproj的使用PowerShell。見here
  • 您可能需要修改所有CS文件中複製的csproj是links
2

使用nant你想可以很容易地實現什麼。您必須創建一個簡單的xml文件,該文件是腳本並且可以通過批處理文件輕鬆執行。一旦你創建了它們,那麼很容易就不再需要手動工作,每當你需要構建項目時,你只需要執行腳本即可。

這是關於nant的優秀教程。

+0

+1 - 這是很棒的東西。經歷了創建一個部署腳本和多個powershells來完成上述大部分工作的痛苦之後,我希望我早日聽到這個消息! :) –

0

我知道這是一個老問題,但可以在proj文件中做很多事情,這在用戶界面中是不可能的。

對於你只是做這樣的這一具體問題:

  • 創建一個新的項目配置,例如ReleaseExe
  • 在項目的csprojfile你會發現下面的行

    <OutputType>Library</OutputType> 
    
  • 之後該行添加以下行

    <OutputType Condition="'$(Configuration)|$(Platform)' == 'ReleaseExe|AnyCPU'">Exe</OutputType> 
    

保存,打開項目並使用批量構建以建立DLL和EXE

好的是你可以使用Condition attibute項目文件中的所有標籤。我有一個項目,我需要根據不同的第三方組件創建兩個版本。爲了解決這個問題,我只是給參考標籤添加一個條件。

<Reference Include="3rdParty" Condition="'$(Configuration)|$(Platform)' == 'Release1|AnyCPU'"> 
    <HintPath>Release1\3rdParty.dll</HintPath> 
</Reference> 
<Reference Include="3rdParty" Condition="'$(Configuration)|$(Platform)' == 'Release2|AnyCPU'"> 
    <HintPath>Release2\3rdParty.dll</HintPath> 
</Reference>