在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(用於源代碼修改)?
- 3. 我可以使用Roslyn編譯時代碼重寫嗎?
- 4. 使用編譯的java代碼修改Buildbot退出代碼
- 5. Roslyn CTP - 隨機代碼修改
- 6. 使用資源修改自動編譯
- 7. 庫用於解析/修改C#源代碼(和之後編譯)
- 8. Roslyn是否包含編譯器源代碼?
- 9. Linux內核源代碼修改和重新編譯
- 10. 在編譯之前修改Gradle構建的Groovy源代碼
- 11. 無法從源代碼編譯未修改的Android
- 12. 編程修改註釋Java源代碼
- 13. 使用Roslyn調試動態編譯代碼
- 14. 如何使用JDT修改源代碼?
- 15. Webpack編譯忽略源代碼更改
- 16. 如何在最終編譯之前使用java批註修改源代碼?
- 17. 如何在eclipse中使用windows編譯和修改android 4.0.3源代碼
- 18. 使用從源代碼編譯的SharpDX?
- 19. 編譯C#Roslyn
- 20. 如何在附加源代碼時修改源代碼
- 21. 反編譯預編譯源代碼ASP.NET
- 22. 在ubuntu中編譯/編譯源代碼
- 23. 修改源代碼hadoop
- 24. iOS修改源代碼ffmpeg
- 25. 修改OpenCV源代碼
- 26. 編譯C源代碼時出錯
- 27. 從源代碼編譯gcc時出錯
- 28. 修改/編譯開源項目源代碼的最佳方法是什麼?
- 29. 使用閉包編譯器自動編譯javascript源代碼
- 30. 編譯renderscript源代碼
好問題,最近我一直在想這類東西。 – 2012-04-26 07:49:57