お世話になります。 どうぞよろしくお願い致します。
powershell ISEで下記コードの関数名を変更すると
"Add-Type : 型を追加できません。型名 'sample' は既に存在しています。…"
という警告が発生します。 ただし、ISEを再起動すると問題なくコンパイルされます。
なぜでしょうか? どうぞよろしくお願い致します。
PS1 VC#内でスクリプトとして利用すると同じ問題が発生します。 同じく再起動すると解決します…
PS2 検索してみると同じように悩みを持たれている方がいらっしゃるようですが
解決していないようです。
ttp://www.vistax64.com/powershell/224562-v2-ctp3-there-way-undo-action-add-type.html
ttp://mtgpowershell.blogspot.com/2010_06_01_archive.html
下記コードで、
a() → aa()
等に関数名を変更してみてください。
$source=@"
public class sample{
public static int a()
{
int b=2;
return b;
}
}
"@
Add-Type -TypeDefinition $source
$e= [sample]::a()
$e
No.4ベストアンサー
- 回答日時:
多分、F5実行の度にPowerShellが完全終了→再起動みたいなイメージをお持ちなんではないでしょうか
スクリプト言語をエディタからの自動実行とかさせたらそんなイメージですよね
次の3行をスクリプトペインに貼っつけて、まず走らせて下さい
$n = 0
$n++
Write-Host $n
1が表示されたと思います。
次に1行目の「$n = 0」をコメントアウトしてから2回、3回とF5を押してください
増えてってますよね?
つまり、F5押したときには前の続きで走っているようなイメージなんじゃないでしょうか
「シェル」ですから、これはこれで普通な気もします。
関数名を変更したら・・・と仰られていましたが、例えばint bの値を書き換えただけでも関数名変更時と同様のエラーが出ると思いますよ。
他に方法あるかもしれませんが、自分はISE終了させる他に初期環境から始める方法を知りません。
ご返答ありがとうございます。
丁寧なご説明ありがとうございます。
おかげさまでようやく理解できてきました…
で、つたないながらも一度終了させるために、アプリケーションドメインの
終了…と下記を組んでみましたが、$nは増えていくばかりで
終了していないようです…
ご返答ありがとうございました。
$appDomain=[AppDomain]::CreateDomain("test1")
$n++
Write-Host $n
$appDomain
[AppDomain]::Unload($appDomain)
$appDomain
No.3
- 回答日時:
「F5 を押す」たびに「スクリプトを実行する」んでしょ?
だったら, 「エラーになる」のが当然であって, これで「なぜ?」と思う方がおかしい.
ご返答ありがとうございます。
すいません。 どうもよくわかっていません。
いろいろ考えてみましたが、下記コードでもダメでした…
アプリケーションドメインのFriendlyNameのID?が変わっているからでしょうか?
どこか違う場所があれば、添削ください…
$appDomain=[AppDomain]::CreateDomain("test1")
$source=@"
public class sample{
public static int a()
{
int b=2;
return b;
}
}
"@
Add-Type -TypeDefinition $source
$e= [sample]::a()
$e
[AppDomain]::Unload($appDomain)
No.2
- 回答日時:
ISEで書き換えるたびにF5押しているイメージですよね?
多分、次のサイトが参考になります。
http://flamework.net/archives/8
ここの情報にあるとおり
[AppDomain]::CurrentDomain.GetAssemblies()
をコードの最後に入れとくと、F5結果表示する時の末尾に「False v2.0.50727 」みたいなのがどんどん増えていくと思います。
ご返答ありがとうございます。
リンク先を読ませて頂いたのですが、リンク先のサンプルが難しく四苦八苦してます。
(まだまだ理解が足らないのだと思います)
(MSNのアプリケーションドメインの説明を読んだり、メモリリークのないサンプルと見比べているのですが…)
もし、上のサンプルに何行か追加すれば解決であれば、お教え頂けないでしょうか?
ちょっと今のレベルでは、解決できそうにないです…
本当に申し訳ないです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- Windows 10 IT初心者です! powershellで以下のようなエラーが出ました オブジェクト参照がオブジェクト 1 2023/05/17 11:30
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# C言語 ポインタ 配列 2 2022/06/02 17:29
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ディスクの空き容量を求める(W...
-
Perlのライセンス
-
複数行に渡る文字列の置換
-
VBScriptでCurrentDirectoryを...
-
頭にperlとつけないと実行できない
-
Windows系OSのPerlスクリプト...
-
PerlでUNIXのコマンドとパスワ...
-
[ASP]条件によってインクルード...
-
vbs: オブジェクトがコレクショ...
-
crontab での実行結果が違う
-
ホームページ作成でCGI、VBスク...
-
powershellで関数名を変更する...
-
VBAで別モジュールへの変数の受...
-
VBAで旧字体を異字体に一括で変...
-
例外処理のフローチャートの記...
-
VBAで「メモリが不足しています」
-
VBA This Workbookモジュール...
-
LCD ディスプレイを Raspberry ...
-
オフコン(富士通Kシリーズ)...
-
ユーザー定義関数に#NAME?が返...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Cからシェルを起動し返り値をハ...
-
powershellで関数名を変更する...
-
UWSCのスクリプトにラグが発生...
-
"JScript"が見つかりません!
-
[ASP]条件によってインクルード...
-
VBSで自動ログインについて
-
VBSを利用して、IEのタブを自動...
-
VBScriptでCurrentDirectoryを...
-
Perlのライセンス
-
vbs: オブジェクトがコレクショ...
-
Perlスクリプトで文字化けして...
-
シェルでsyntax errorがでてしまう
-
awkの処理速度を改善したい
-
ADサーバにおけるログインID,PC...
-
cygwinでcshが認識されず困って...
-
ディスクの空き容量を求める(W...
-
crontab での実行結果が違う
-
ホームページ作成でCGI、VBスク...
-
perlスクリプトのブラウザURLか...
-
perl起動方法
おすすめ情報