1

我已經使用CodeDom生成所謂的「Product.cs」類,我的類已經在正確的路徑中生成,但我的代碼不能完美完整,因爲這個「 Product.cs「被排除在我的解決方案之外,我必須將它包含在運行時間我搜索並找到了創建csc.exe和加載程序集的方法,以便在運行時編譯我的類,並將其包含在我的解決方案中,我可以在「Product.cs」上工作。編譯運行時排除CodeDom生成的類

我正在編寫Web應用程序(如MVC)上的Visual Studio 2013的代碼。 謝謝你的幫助。

+0

您是否嘗試通過添加生成的文件來編輯僅爲xml文件的項目文件?檢查這也是:https://msdn.microsoft.com/en-us/library/microsoft.build.buildengine.aspx – 2015-03-08 18:45:41

回答

1

它會一直工作只是想看看我的以上意見 如果你想包括類文件只是編輯項目文件它是XML文件,你可以eadily做到這一點。要知道標記PLZ打開項目文件在記事本中,然後使用MSBuild或Whatwver你想建立你的項目。 - 如果您想生成並創建項目,請參閱反射。同時檢查:http://www.codeproject.com/Articles/10324/Compiling-code-during-runtime

1

要包括特別是當它是由代碼生成的方法,如的CodeDOM或EnvDTE和等產生排除文件,應該遵循:

  1. 右鍵點擊引用的解決方案
  2. 選擇組件 - > Microsoft.Build
  3. 寫這樣的代碼:

    var p = new Microsoft.Build.Evaluation.Project(@"D:\MVCNHibernate\MVCNHibernate\MVCNHibernate.csproj"); 
    p.AddItem("Compile", @"D:\MVCNHibernate\MVCNHibernate\Entities\Product.cs"); 
    p.Save(); 
    p.Build();

然後「Product.cs」將成爲項目或解決方案中包含的文件,並且可以使用它。

+0

正如你所說,上述是你的問題的正確解決方案。那麼,我相信你應該把上面的標記作爲一個被接受的答案。 – 2015-03-09 14:25:22

+2

非常感謝Gaurav的回答,它給了我適當的線索來實現我的方式。 – 2015-03-09 22:31:27

+0

它是做這個研究的好經驗,我從你的問題中學到了很多東西。不用說謝謝,你總是歡迎!隨意問這裏任何事情。祝你好運。 – 2015-03-12 07:20:24