在CI服務器上的MSBuild任務中使用Roslyn編譯之前是否可以修改源代碼?我已經成功地做了我想要的VS,但是我想知道VS之外是否有可能。目前我正在研究Workspace API和編譯器API,他們似乎是實現這一目標的正確工具,但我仍然不確定是否有可能?特別是我擔心我將MSBuild所做的更改返回給它,讓它繼續工作。使用Roslyn編譯時源代碼修改
回答
這絕對是我們正在考慮的情景。今天有幾個問題使其有點困難:
- 您不能使用Workspace API加載項目/解決方案,因爲您已經在msbuild中。
- 要使用常規編譯器API,您需要自己構建一個編譯,這可以是一大堆工作。
未來,我們希望提供一個「從csc/vbc命令行字符串創建工作空間」,這將使這更容易。
看一下Hooking into the compiler (csc.exe or vbc.exe) itself和Problem with using Roslyn in a MS Build Task對於此前的一些討論。
謝謝Kevin Kevin期待您的團隊擁有新的Roslyn功能! – 2012-04-26 20:15:03
我知道這是從2012年起。有沒有關於這方面的消息?現在有一個簡單的方法嗎? – riki 2016-10-24 19:23:50
關於對 Problem with using Roslyn in a MS Build Task問題,
public class MyTask : Task
改變任務以AppDomainIsolatedTask是速戰速決。我沒有msdn帳戶,所以我只是在這裏發佈它。希望它可以幫助。
- 1. 如何使用Roslyn修改源代碼?
- 2. Roslyn CTP - 隨機代碼修改
- 3. 使用資源修改自動編譯
- 4. 庫用於解析/修改C#源代碼(和之後編譯)
- 5. 無法從源代碼編譯未修改的Android
- 6. 在編譯之前修改Gradle構建的Groovy源代碼
- 7. 使用Roslyn調試動態編譯代碼
- 8. 如何使用JDT修改源代碼?
- 9. Webpack編譯忽略源代碼更改
- 10. 使用從源代碼編譯的SharpDX?
- 11. 如何在附加源代碼時修改源代碼
- 12. 反編譯預編譯源代碼ASP.NET
- 13. 在ubuntu中編譯/編譯源代碼
- 14. 修改OpenCV源代碼
- 15. 修改源代碼hadoop
- 16. 修改/編譯開源項目源代碼的最佳方法是什麼?
- 17. 編譯android源代碼
- 18. nginx從源代碼編譯
- 19. SML編譯器源代碼?
- 20. 使用Roslyn編譯語法樹
- 21. 反編譯代碼更改代碼
- 22. Cuda Source使用Rose編譯器進行源代碼翻譯
- 23. 如何編譯和使用修改後的ejabberd源文件
- 24. 我修改了GTK源代碼並重新編譯:沒有效果
- 25. Gnuplot開發 - 如何修改源代碼並在Windows 7上編譯
- 26. 如何在不編譯代碼的情況下修改全局資源DLL?
- 27. Roslyn - CodeDom:HowTo動態編譯代碼到Universal-Windows-Library
- 28. 更改Roslyn的部分源代碼中的背景顏色
- 29. 使用mxmlc(Ant)構建swf - 代碼編譯時代碼未更改
- 30. 修改Roslyn的方法體
好問題,最近我一直在想這類東西。 – 2012-04-26 07:49:57